MCP 문서 관리

메뉴

Golang Filesystem Server

Golang Filesystem Server

Golang Filesystem Server는 Go 언어로 구축된 Model Context Protocol(MCP) 서버로, 안전한 파일 시스템 작업을 위한 도구를 제공합니다. 이 서버는 구성 가능한 접근 제어 기능을 갖추고 있어 보안을 강화하면서도 유연한 파일 관리가 가능합니다.

특징

  • Go 언어 기반: 빠른 성능과 효율적인 리소스 관리를 위해 Go 언어로 구축
  • 구성 가능한 접근 제어: 특정 디렉토리나 파일에 대한 접근 권한을 세밀하게 제어
  • 안전한 파일 작업: 파일 읽기, 쓰기, 수정, 삭제 등의 작업을 안전하게 수행
  • 경량 설계: 최소한의 시스템 리소스를 사용하면서도 강력한 기능 제공
  • 크로스 플랫폼: Windows, macOS, Linux 등 다양한 플랫폼에서 동작

API

도구

read_file

파일의 내용을 읽고 반환합니다. - 입력: - path: 읽을 파일의 경로

write_file

지정된 경로에 파일을 생성하거나 기존 파일을 덮어씁니다. - 입력: - path: 쓰기 작업을 수행할 파일 경로 - content: 파일에 쓸 내용

edit_file

기존 파일의 내용을 부분적으로 수정합니다. - 입력: - path: 수정할 파일의 경로 - edits: 변경 사항 목록 (이전 텍스트와 새 텍스트 쌍)

create_directory

새 디렉토리를 생성합니다. - 입력: - path: 생성할 디렉토리 경로

list_directory

지정된 디렉토리의 내용을 나열합니다. - 입력: - path: 탐색할 디렉토리 경로

directory_tree

디렉토리 구조를 트리 형태로 표현합니다. - 입력: - path: 트리 구조를 생성할 루트 디렉토리 경로

search_files

패턴과 일치하는 파일을 검색합니다. - 입력: - path: 검색을 시작할 디렉토리 경로 - pattern: 검색 패턴 - excludePatterns: 제외할 패턴 (선택 사항)

get_file_info

파일이나 디렉토리의 메타데이터 정보를 반환합니다. - 입력: - path: 정보를 가져올 파일 또는 디렉토리 경로

move_file

파일이나 디렉토리를 다른 위치로 이동하거나 이름을 변경합니다. - 입력: - source: 원본 파일/디렉토리 경로 - destination: 목적지 경로

사용 방법

설치

# npm 사용
npm install -g golang-mcp-filesystem

# 또는 Go 소스에서 직접 설치
go install github.com/user/golang-filesystem-server@latest

기본 구성

{
  "mcpServers": {
    "golang-filesystem": {
      "command": "golang-mcp-filesystem",
      "args": ["/path/to/allowed/directory"]
    }
  }
}

고급 구성

특정 디렉토리에 대한 접근 제한 및 권한 설정:

{
  "mcpServers": {
    "golang-filesystem": {
      "command": "golang-mcp-filesystem",
      "args": [
        "--allow-read=/home/user/documents",
        "--allow-write=/home/user/downloads",
        "--deny=/home/user/private"
      ]
    }
  }
}

보안 고려 사항

Golang Filesystem Server는 안전한 파일 시스템 액세스를 제공하지만, 다음 보안 사항을 고려해야 합니다:

  1. 항상 최소 권한 원칙을 따라 필요한 디렉토리에만 접근 권한을 부여하세요.
  2. 중요한 시스템 파일이나 민감한 정보가 있는 디렉토리에 대한 접근을 명시적으로 거부하세요.
  3. 정기적으로 로그를 검토하여 비정상적인 액세스 패턴을 모니터링하세요.

연결된 구성 요소

  • Docker - 컨테이너화된 환경에서 파일 시스템 서버 실행
  • Git - 로컬 git 저장소와 상호작용
  • Terminal-Control - 터미널 명령 실행 및 파일 시스템 작업